Fix logic for Eq and Ord
#14
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Had some downtime and figured I'd poke around in here a bit.
If wanted, I can split the commits into separate PRs, it was just more convenient to combine them for now.The original
EqandOrdimplementations were sensitive to the actual heap length of the bitset. However, since there can be trailing zero chunks, which wouldn't impact the logical value, bitsets with the same logical value could compare as inequal. In practice this could happen due to masking out high bits with an operator.To do this, I added a
small helper iterator that iterates over the logical chunks of the bitsetsmall helper struct that provides access to the logical chunks of the bitset as a slice and added additional tests.